Export-385065fd-a990-49dd-b683-b2aefe0794d4\Преподавание\2023-2024, 1 семестр\Большие данные 912f6dfa08844ff4903af5a563ee41bd\МО-201, Большие данные b09c214dbcfd439f9810d71773ff5b39\Практики 449add899e814aeca1fb13f8f1e0e2b7\DWH 979e104cdc83406d8cfd250a34706af8.md

DWH

Обычно данные в организациях хранятся «разрозненно». В бухгалтерии одна система хранения, в логистике и прочих отделах — другая. Желательно, чтобы эти системы хранения не пересекались — и в этом есть логика. Так, например, информация о финансовых поступлениях и налоговых отчислениях не будет доступна никому, кроме сотрудников отдела бухгалтерии.

Но эта «разрозненность» вызывает много вопросов. Например, как подготовить аналитику состояния компании за год? Как объединить данные из разных источников и информационных систем в одном месте? Ведь база данных (БД) склада хранит только информацию о складских запасах, а база отдела кадров — данные о сотрудниках. Как их очистить, структурировать и анализировать? На помощь приходит Data Warehouse.

CQRS — command & query responsibility segregation

CurrectAccountState:

  1. AccountID
  2. Amount

AccountJournal

  1. Date
  2. SenderID
  3. ReceiverID
  4. Value

Data Warehouse (DWH) — это хранилище, в которое из разных систем хранения собираются исторические данные компании. Это некая библиотека, в которой упорядочена и каталогизирован весь объем информации. Она может быть в основе, например, платформы обработки данных.

Признаки и особенности DWH:

Корпоративное хранилище данных, КХД

DWH называют хранилищем данных или корпоративным хранилищем данных (КХД). Это хранилище структурированных данных, с одной широкой или большим количеством отдельных таблиц.

DWH не только хранят данные, но и выполняют вычисления, так как аналитические — например, OLAP — запросы зачастую требуют много ресурсов. Например, представим гигантский ангар, заставленный полками вдоль и поперек, а полки — вещами в коробках, пакетах, пленке. Здание поделено на секции для канцтоваров, ГСМ, средств гигиены и прочего.

Если просто использовать ангар как склад — это будет простое хранилище. Но если добавить на все коробки штрих-коды, а на входе и выходе — лазерные сканеры для их считывания, то условный завхоз сможет отслеживать насколько заполнены стеллажи. Это полезно, если ему нужно прогнозировать, например, расход материалов — чтобы они не простаивали и не перегружали стеллажи. Такой прокачанный ангар — это хранилище данных, DWH.

Трехуровневая архитектура хранилища данных

https://selectel.ru/blog/wp-content/uploads/2023/03/image4-6.png

В традиционном виде часто архитектура хранилища данных состоит из трех уровней.

Полная архитектура хранилища данных

Одна из моделей проектирования Data Warehouse — «слоеный пирог», построенный по архитектуре LSA, Layered Scalable Architecture. Она реализует логическое деление структур с данными на несколько функциональных уровней:

  1. Стейджинг (Primary Data Layer) — уровень, на котором подгружаются данные из внешних источников. Например, из таблиц, ERP-системы или биллинговой системы.
  2. Ядро хранилища (Core Data Layer) — центральный уровень, который подгоняет данные к единым структурам и ключам. На этом слое обеспечивается целостность и качество данных.
  3. Аналитические витрины (Data Mart Layer) — слой, который преобразует данные к структурам, удобным для анализа и использования в BI-дашбордах и других аналитических системах.
  4. Сервисный слой (Service Layer) — уровень, на котором обеспечивается управление предыдущими слоями, мониторинг и диагностика ошибок.

Визуально LSA-архитектуру Data Warehouse можно представить так:

https://selectel.ru/blog/wp-content/uploads/2023/03/image1-8.png

Проектирование хранилища данных: модели Кимбалла и Инмона

Существует две модели, описывающие то, как должны быть устроены хранилища данных. Их идейные вдохновители — Билл Инмон, «отец хранилищ данных», и Ральф Кимбалл, идейный лидер в области хранилищ многомерных данных.

Хранение данных по модели Инмона

По модели Инмона (Inmon) данные из источников должны поступать в хранилище после процесса ETL (Extract, Transformation, Load).

https://selectel.ru/blog/wp-content/uploads/2023/03/image2-5.png

Хранение данных по модели Кимбалла

По модели Кимбалла (Kimball) после процесса ETL данные загружаются в витрины данных, а объединение витрин создает концептуальное (а не фактическое) хранилище данных.

https://selectel.ru/blog/wp-content/uploads/2023/03/image3-5.png

От выбора двух подходов будет зависеть исходный результат. Представим хранилище в виде картотеки — библиотечного шкафа с карточками, в котором хранятся данные.

При создании DWH также следует учитывать и специфику данных, взаимосвязи внутри групп данных, связи между ними, типы преобразования данных, частоту обновления, взаимосвязь между объектами хранилища, процессы передачи, резервного копирования, восстановления.

Чем DWH отличается от базы данных, Data Lake и Data Mart

Базы данных и хранилища данных — это разные вещи

Многие базы данных — OLTP, рассчитаны на операционную нагрузку, поэтому они выполняют много небольших операций записи, изменения и удаления. В остальном, можно выделить следующие признаки для баз данных:

С Data Warehouse ситуация другая, хранилище:

DWH — единый источник информации, основанный на структурированных и неструктурированных данных бизнеса. Инструмент, который используется для аналитики и обнаружения закономерностей и взаимосвязей в данных, которые появляются со временем.

Витрины данных и хранилища данных — разные вещи

Витрины нужны для того, чтобы предоставлять обработанные данные в BI- или отчетную систему, наряду с этим:

Озера данных и хранилища данных — не одно и то же

Они отличаются архитектурно и функционально.

Источник.

https://selectel.ru/blog/wp-content/uploads/2023/03/image5-4.png

DWH как инструмент для анализа данных

«Озера данных», или Data Lake, используют для хранения неформатированных, неструктурированных данных из большого количества внешних источников. Они могут строиться, например, на базе облачного хранилища (S3) и быть дешевле в работе. DWH же предназначены не только для хранения, но и для анализа данных.

Подробнее о разнице между Data Lake и Data Warehouse читайте по ссылке →

Для чего крупному бизнесу хранилище данных

Мы уже определили, что хранилище данных — это информационная система, предназначенная для подготовки отчетов и бизнес-анализа. Наряду с этим DWH помогает: